package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Teacher;

public class TeacherDao {
    //已到最上游,创建数据库
    private static Teacher[] ts = new Teacher[5];//静态引用类型数组

    //add - 查重 - 返回数据库里所有的老师信息
    public Teacher[] findAllTeacher() {//避免重复创建新数据库,进而避免Service等的重复创建
        return ts;
    }
    //add - 返回添加结果
    public boolean addTeacher(Teacher t) {
        //接收
        // 入库
        /*
            库存情况 空\部分\全部
            思路:遍历,找到未初始化的位置(null)
         */
        boolean flag = false;//默认没有空位置
        for (int i = 0; i < ts.length; i++) {
            if (ts[i] == null){//找到空位置
                ts[i] = t;
                flag = true;
                break;//*注意 一旦找到,跳出,否则会造成空指针异常
            }
        }
        // 返回结果
        return flag;
    }

    //delete - 无返回
    public void deleteTeacher(String id) {
        //查找索引
        int index = getIndex(id);
        //将该位 置为null
        ts[index] = null;
    }
    //delete - 根据id找到索引位置
    public int getIndex(String id) {
        /*
            #标记位#:假设索引不存在
        */
        int index = -1;
        for (int i = 0; i < ts.length; i++) {//遍历
            if (ts[i] != null && ts[i].getTid().equals(id)){
                index = i;
            }
        }
        return index;
    }

    //update - 无返回 - 修改对应工号的老师信息
    public void updateTeacher(Teacher t) {
        //获取数据索引
        int index = getIndex(t.getTid());//在Controller已经判断过,必然存在
        //用新的信息替换
        ts[index] = t;
    }
}
